home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / lib_std / link.e < prev    next >
Text File  |  1998-12-22  |  1KB  |  70 lines

  1. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  2. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  3. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  4. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  5. -- this header is kept unaltered, and a notification of the changes is added.
  6. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  7. -- another product.
  8. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  9. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  10. --                       http://www.loria.fr/SmallEiffel
  11. --
  12. class LINK[E]
  13.    --
  14.    -- To implement LINKED_COLLECTION[E] (see LINK_LIST[E} and 
  15.    -- LINK2_LIST[E]).
  16.    --
  17.  
  18. creation {LINKED_COLLECTION}
  19.    make
  20.  
  21. feature {LINKED_COLLECTION,LINK}
  22.    
  23.    item: E;
  24.  
  25.    next: like Current;
  26.  
  27. feature {LINKED_COLLECTION}
  28.  
  29.    make(i: like item; n: like next) is
  30.       do
  31.      item := i;
  32.      next := n;
  33.       ensure
  34.      item = i;
  35.      next = n
  36.       end;
  37.    
  38. feature {LINKED_COLLECTION,LINK}
  39.  
  40.    set_item(i: like item) is
  41.       do
  42.      item := i;
  43.       ensure
  44.      item = i
  45.       end;
  46.  
  47.    set_next(n: like next) is
  48.       do
  49.      next := n;
  50.       ensure
  51.      next = n
  52.       end;
  53.  
  54.    set_all_with(v: like item) is
  55.       local
  56.      lnk: like Current;
  57.       do
  58.      from
  59.         lnk := Current;
  60.      until
  61.         lnk = Void
  62.      loop
  63.         lnk.set_item(v);
  64.         lnk := lnk.next;
  65.      end;
  66.       end;
  67.  
  68. end -- LINK[E]
  69.  
  70.